function charger_valeurs()
{
	// On récupère les adherents pour les inserer dans la liste de gauche
	var xmlHttp = createXmlHttpRequestObject();
	xmlHttp.open("GET", "recuperer_adherent.php", true);
	xmlHttp.onreadystatechange = function(){traiter_reponse(xmlHttp);};
	xmlHttp.send(null);
}

function traiter_reponse(myReq) 
{
	var ol;
	var li;
	var responseJSON;
	
	if (myReq.readyState == 4) 
	{	
		if(myReq.status == 200) 
		{
			
			responseJSON = JSON.parse(myReq.responseText);		
			// Pour chaque adherent
			for(var i = 0; i < responseJSON.listeAdherent.length; i++) 
			{     		
				ol = document.getElementById('contenu_source');
				li = document.createElement("OPTION"); // On cree la balise <option>
				li_text = document.createTextNode(responseJSON.listeAdherent[i].nom+" "+responseJSON.listeAdherent[i].prenom);
				li.appendChild(li_text);  // On y ajoute le nom et le prenom de l adherent
				ol.appendChild(li); 
			} 	
		}	
	}
}

// Ajout des adherents du contenu source au contenu de destination, c est a dire dans la liste de droite
function ajouterDestinataire()
{
	var indexAdherent = document.getElementById('contenu_source');
	var adherentValue = indexAdherent.options[indexAdherent.selectedIndex].value;
		
	// Pour l adherent selectionne
	if(adherentValue != null)
	{
		// On split pour recuperer le nom et le prenom
		var tab = adherentValue.split(' ');
		var nom = tab[0];
		var prenom = tab[1];
		
		// On creer une balise <option> dans notre select de la liste de droite
		ol = document.getElementById('contenu_destinataire');
		li = document.createElement("OPTION"); 
		li_text = document.createTextNode(nom+" "+prenom);
		li.appendChild(li_text);     
		ol.appendChild(li); 	
	}	
	
	// On decale l indice des adherents du contenu source
	for (var i = indexAdherent; i < Number(document.forms.form1.contenu_source.options.length-1); i++)
	{
		document.forms.form1.contenu_source.options[i] = new Option((document.forms.form1.contenu_source.options[ Number(i+1) ].text ),(document.forms.form1.contenu_source.options[ Number(i+1) ].value) );
	}
	document.forms.form1.contenu_source.options.length--;
}

// Ajout de tous les adherents a la liste de droite
function ajouterAllDestinataire()
{	
	// On ajoute chaque adherent de la liste de gauche a la liste de droite
	for (var i = 0; i < Number(document.forms.form1.contenu_source.options.length); i++)
	{
		document.forms.form1.contenu_destinataire.options[i] = new Option((document.forms.form1.contenu_source.options[ Number(i) ].text ),(document.forms.form1.contenu_source.options[ Number(i) ].value) );
	}
	
	// On supprimer les adherents de la liste de gauche
	for (var i=0; i < document.forms.form1.contenu_source.options.length; i++)
	{
		document.forms.form1.contenu_source.removeChild( document.forms.form1.contenu_source.options[i]);
	    i--; 
	}
}

// Suppression de tous les detinataires de la liste de droite pour les remettrent dans la liste de gauche
function supprimerAllDestinataire()
{
	for (var i = 0; i < Number(document.forms.form1.contenu_destinataire.options.length); i++)
	{
		document.forms.form1.contenu_source.options[i] = new Option((document.forms.form1.contenu_destinataire.options[ Number(i) ].text ),(document.forms.form1.contenu_destinataire.options[ Number(i) ].value) );
	}
	
	for (var i=0; i < document.forms.form1.contenu_destinataire.options.length; i++)
	{
		document.forms.form1.contenu_destinataire.removeChild( document.forms.form1.contenu_destinataire.options[i]);
	    i--; 
	}
}

// Supprimer un destinataire de la liste de droite
function supprimerDestinataire()
{
	var indexAdherent = document.getElementById('contenu_destinataire');
	var adherentValue = indexAdherent.options[indexAdherent.selectedIndex].value;
	
	if(adherentValue != null)
	{
		// On split pour recuperer le nom et le prenom
		var tab = adherentValue.split(' ');
		var nom = tab[0];
		var prenom = tab[1];
		
		ol = document.getElementById('contenu_source');
		li = document.createElement("OPTION"); 
		li_text = document.createTextNode(nom+" "+prenom);
		li.appendChild(li_text);     
		ol.appendChild(li); 
	}	
	
	// On decale l indice des autres adherents dans la liste
	for (var i = indexAdherent; i < Number(document.forms.form1.contenu_destinataire.options.length-1); i++)
	{
		document.forms.form1.contenu_destinataire.options[i] = new Option((document.forms.form1.contenu_destinataire.options[ Number(i+1) ].text ),(document.forms.form1.contenu_destinataire.options[ Number(i+1) ].value) );
	}
	document.forms.form1.contenu_destinataire.options.length--;	
}

function envoyerFormulaire(e)
{
	  //On verifie si il y a deja un message d'erreur
	  nb = 0;
	  for(var j = 0; j < document.getElementById('mess_erreur').childNodes.length ; j++)
	  {
		if(document.getElementById('mess_erreur').childNodes.item(j).nodeType == 3 )
	    {
			nb = nb + 1;
	    }
	  }
	  //On supprime le noeud texte contenant le message erreur si il y en deja un
	  if(nb != 0)
	  {
		 document.getElementById('mess_erreur').removeChild(document.getElementById('mess_erreur').firstChild);
	  }
	  ///////////////////////////////////////////////
	  // On verifie la validite des champs
	  ///////////////////////////////////////////////
	  if(document.forms.form1.contenu_destinataire.options.length == 0 && document.getElementById('title').value == "" && document.getElementById('contenu_mail').value == "")
	  {	 
		var text = document.createTextNode("Veuillez remplir les champs Titre, Contenu et Destinataire");
		document.getElementById('mess_erreur').appendChild(text);
		stopEvent(e); 
	  }
	  else if (document.forms.form1.contenu_destinataire.options.length != 0 && document.getElementById('title').value == "" && document.getElementById('contenu_mail').value == "")
	  {
		var text = document.createTextNode("Veuillez remplir les champs Titre et Contenu");
		document.getElementById('mess_erreur').appendChild(text);
		stopEvent(e);
	  }
	  else if (document.forms.form1.contenu_destinataire.options.length == 0 && document.getElementById('title').value == "" && document.getElementById('contenu_mail').value != "")
	  {
		var text = document.createTextNode("Veuillez remplir les champs Destinataire et Titre");
		document.getElementById('mess_erreur').appendChild(text);
		stopEvent(e);
	  }
	  else if (document.forms.form1.contenu_destinataire.options.length == 0 && document.getElementById('title').value != "" && document.getElementById('contenu_mail').value == "")
	  {
		var text = document.createTextNode("Veuillez remplir les champs Destinataire et Contenu");
		document.getElementById('mess_erreur').appendChild(text);
		stopEvent(e);
	  }
	  else if  (document.forms.form1.contenu_destinataire.options.length != 0 && document.getElementById('title').value != "" && document.getElementById('contenu_mail').value == "")
	  {
		var text = document.createTextNode("Veuillez remplir le champ Contenu");
		document.getElementById('mess_erreur').appendChild(text);
		stopEvent(e);	  
	  }
	  else if  (document.forms.form1.contenu_destinataire.options.length != 0 && document.getElementById('title').value == "" && document.getElementById('contenu_mail').value != "")
	  {
		var text = document.createTextNode("Veuillez remplir le champ Titre");
		document.getElementById('mess_erreur').appendChild(text);
		stopEvent(e);	  
	  }
	  else if  (document.forms.form1.contenu_destinataire.options.length == 0 && document.getElementById('title').value != "" && document.getElementById('contenu_mail').value != "")
	  {
		var text = document.createTextNode("Veuillez ajouter des Destinataires");
		document.getElementById('mess_erreur').appendChild(text);
		stopEvent(e);	  
	  }
	  else// Si les champs sont OK
	  {
		var tab = new Array();
		var xmlHttp = createXmlHttpRequestObject();
		var indice = 0;
		
		// On envoit un mail aux destinataires concernes
		for (i = 0; i <= Number(document.forms.form1.contenu_destinataire.options.length-1); i++)
		{
			tab[indice] = document.forms.form1.contenu_destinataire.options[i].value;
			indice++;
		}
		// On join sur le tableau pour ensuite l explode en php
		// Creation de la requete POST
		var tabJoin = tab.join(";");
		var params = "tableau="+tab;
		xmlHttp.open("POST", "envoyer_email.php", true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
		xmlHttp.onreadystatechange = function() {};	
	  }
}

// Ajout d un listener aux elements de la page
function ajouterEvent()
{
	addListener(document.getElementById('bt_ajouter'),'click',ajouterDestinataire);
	addListener(document.getElementById('bt_supprimer'),'click',supprimerDestinataire);
	addListener(document.getElementById('bt_ajouter_all'),'click',ajouterAllDestinataire);
	addListener(document.getElementById('bt_supprimer_all'),'click',supprimerAllDestinataire);
	addListener(document.getElementById('bt_envoyer'),'click',envoyerFormulaire);
	addListener(document.getElementById('annuler'),'click',function(){history.back()});
}

// Stop le formulaire
function stopEvent(e) {
	if(e.stopPropagation){
		e.stopPropagation();
		e.preventDefault();
	}
 
	if(window.event){
		window.event.cancelBubble = true;
		window.event.returnValue  = false;
		return;
	}
}

function checkForm(event)
{
	faulty=null;
	if(!faulty)
	{
		return stopEvent(event);
	}
 }

// Ajout d un evenement au formulaire
function addFormCheck(nomForm){
var form = document.getElementById('form1');
addListener(form,'submit',checkForm);
}

// Ajout des evenements à la page
addListener(window,'load',addFormCheck);
addListener(window,'load',ajouterEvent);
addListener(window,'load',charger_valeurs);
